var fecha_desde, fecha_hasta, rowIds = [], opt_grid;
var repo_incidencia_estado, repo_oportunidad_estado_funnel, repo_ranking_clientes, repo_ranking_vendedores, repo_ranking_productos;
var fechasAux;

//    mostrarHighcharts();

$(function() {
   fechasAux= fechas;
    $parametros = [];
//    $parametros = {fechas: fechas};
    repo_ranking_productos = $("#rankingProductosColumn");
    producto_id = null;
    $parametros = {action: "mostrarReporteProductosColumnVentas", fechas: fechas, producto_id: producto_id};
    mostrarReporte($parametros, "procesos/crud_producto.php", repo_ranking_productos, repo_ranking_productos, "#content_repo_rankingProductosColumn");


    $("#ProductoStock_id_producto").select2({
        placeholder: "Seleccione un Producto",
        initSelection: function(element, callback) {
            if ($(element).val()) {
                var data = {id: element.val(), text: $(element).attr('selected-text')};
                callback(data);
            }
        },
        ajax: {// instead of writing the function to execute the request we use Select2's convenient helper
            url: "procesos/crud_producto.php",
            type: "post",
            dataType: 'json',
            data: function(term, page) {
                return {
                    search_value: term, // search term
                    action: "AjaxjaxlistProductos"
                };
            },
            results: function(data, page) { // parse the results into the format expected by Select2.
                // since we are using custom formatting functions we do not need to alter remote JSON data
                return {results: data};
            }
        },
        allowClear: true
//        multiple: true,
    });
    $("#ProductoStock_id_producto").on('change', function() {
        producto_id = $("#ProductoStock_id_producto").val() && $("#ProductoStock_id_producto").val() > 0 ? $("#ProductoStock_id_producto").val() : null;
        $parametros = {action: "mostrarReporteProductosColumnVentas", fechas: fechas, producto_id: producto_id};
        viewHighcarts("#rankingProductosColumn", "procesos/crud_producto.php", $parametros, function(data) {
            $object_data = $("#rankingProductosColumn");
            if (data.mostrar) {
                $object_data.highcharts(data);
                viewDivsContenedoresCharts("#rankingProductosColumn", true);
//                $pieProductosIncidenciaChart.series[0].setData(data.series[0].data);
            }
            else {
                viewDivsContenedoresCharts("#rankingProductosColumn", false);
            }

        });
    });
    //filtro de fechas
    $('#fechas_filter').daterangepicker(
            {
                format: 'DD/MM/YYYY',
                ranges: {
                    'Semana Actual': [moment().subtract('week').startOf('week').subtract('days', -1), moment()],
                    'Semana Anterior': [moment().subtract('week', 1).startOf('week').subtract('days', -1), moment().subtract('week', 1).endOf('week').subtract('days', -1)],
                    'Mes Actual': [moment().subtract('month').startOf('month'), moment().subtract('month').endOf('month')],
                    'Mes Anterior': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
                },
                startDate: moment().subtract(29, 'days'),
                locale: {
                    applyLabel: 'Aplicar',
                    fromLabel: 'DESDE',
                    toLabel: 'HASTA',
                    customRangeLabel: 'Rango Personalizado',
                    daysOfWeek: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
                    monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
                    firstDay: 1
                }

            },
    function(start, end, label) {
        $('#fechas_filter').val(start.format('YYYY-MM-DD') + ' / ' + end.format('YYYY-MM-DD'));
//        fecha_desde = start.format('YYYY-MM-DD');
//        fecha_hasta = end.format('YYYY-MM-DD');
        fechas = $('#fechas_filter').val();
        producto_id = $("#ProductoStock_id_producto").val() && $("#ProductoStock_id_producto").val() > 0 ? $("#ProductoStock_id_producto").val() : null;
        $parametros = {action: "mostrarReporteProductosColumnVentas", fechas: fechas, producto_id: producto_id};
        viewHighcarts("#rankingProductosColumn", "procesos/crud_producto.php", $parametros, function(data) {
            $object_data = $("#rankingProductosColumn");
            if (data.mostrar) {
                $object_data.highcharts(data);
                viewDivsContenedoresCharts("#rankingProductosColumn", true);
//                $pieProductosIncidenciaChart.series[0].setData(data.series[0].data);
            }
            else {
                viewDivsContenedoresCharts("#rankingProductosColumn", false);
            }

        });
    }
    ).on('cancel.daterangepicker', function(ev, picker) {
        $('#fechas_filter').val(null);
        fecha_desde = moment().subtract('month').startOf('month');
        fecha_hasta = moment().subtract('month').endOf('month');
        fechas = fecha_desde + "/" + fecha_hasta;
        producto_id = null;
        $parametros = {action: "mostrarReporteProductosColumnVentas", fechas: fechas, producto_id: producto_id};
//        mostrarReporte($parametros, "procesos/crud_producto.php", repo_ranking_productos, repo_ranking_productos, "#content_repo_rankingProductosColumn");
////       $parametros, $url, $object_data, $id_informacion_mostrar, $content_id
//        $parametrosTotal = getparamsChart("#pieIncidenciaProductos");
        viewHighcarts("#rankingProductosColumn", "procesos/crud_producto.php", $parametros, function(data) {
            $pieProductosIncidenciaChart = $("#rankingProductosColumn").highcharts();
            if (data.mostrar) {
                viewDivsContenedoresCharts("#rankingProductosColumn", true);
                $pieProductosIncidenciaChart.series[0].setData(data.series[0].data);
            }
            else {
                viewDivsContenedoresCharts("#rankingProductosColumn", false);
            }

        });
    });
    $('#fechas_filter').attr({
        placeholder: 'Seleccione un Rango'
    });
    opt_grid = $("#productosStock-grid");
    opt_grid.bootgrid({
        ajax: true,
        post: function() {
            return {
                action: "mostrarDatosProductoStock"
            };
        },
        selection: true,
        multiSelect: true,
        rowSelect: true,
        keepSelection: true,
        url: "procesos/crud_productoStock.php",
        labels: {
            loading: "Cargando...",
            noResults: "Sin Resultados!",
            infos: " <br> <br> Mostrando {{ctx.start}} - {{ctx.end}} de {{ctx.total}} resultados"
        },
        templates: {
            header: '',
        }
    });


    repo_ranking_productos = $("#rankingProductosColumn");
    id_mostrar = "#rankingProductosColumn";
    id_mostrarContenido = "#content_repo_rankingProductosColumn";
    fecha_desde = null;
    fecha_hasta = null;
    opt_grid = $("#productos-agotados-grid");
    opt_grid.bootgrid({
        ajax: true,
        post: function() {
            return {
                action: "mostrarProductosAgotados"
            };
        },
        selection: true,
        multiSelect: true,
        rowSelect: true,
        keepSelection: true,
        url: "procesos/crud_producto.php",
        labels: {
            loading: "Cargando...",
            noResults: "Sin Resultados!",
            infos: "Mostrando {{ctx.start}} - {{ctx.end}} de {{ctx.total}} resultados"
        },
        templates: {
            header: '',
        }
    });


    $("#Producto_stock_id_producto").select2({
        placeholder: "Seleccione un Producto",
        initSelection: function(element, callback) {
            if ($(element).val()) {
                var data = {id: element.val(), text: $(element).attr('selected-text')};
                callback(data);
            }
        },
        ajax: {// instead of writing the function to execute the request we use Select2's convenient helper
            url: "procesos/crud_producto.php",
            type: "post",
            dataType: 'json',
            data: function(term, page) {
                return {
                    search_value: term, // search term
                    action: "AjaxjaxlistProductos"
                };
            },
            results: function(data, page) { // parse the results into the format expected by Select2.
                // since we are using custom formatting functions we do not need to alter remote JSON data
                return {results: data};
            }
        },
        allowClear: true
//        multiple: true,
    });


});


/**
 * Inserta en la tabla un usuario
 * @param {type} $form_id
 * @returns {undefined}
 */
function mostrarReporte($parametros, $url, $object_data, $id_informacion_mostrar, $content_id) {
    viewHighcarts($id_informacion_mostrar, $url, $parametros, function(data) {
        if (data.mostrar) {
            $("#content_repo_rankingProductosColumn").removeClass("hidden");
            $("#rankingProductosColumnEmpty").addClass("hidden");
//            $("#rankingProductosColumnEmpty").removeClass("hidden");
            $object_data.highcharts(data);
        }
        else {
            $("#content_repo_rankingProductosColumn").removeClass("hidden");
            $("#rankingProductosColumnEmpty").removeClass("hidden");
            $("#rankingProductosColumn").addClass("hidden");
            $object_data.highcharts(data);

        }

    });
}
function insertarProductoStock($form_id) {
    $($form_id).attr('action', "procesos/crud_productoStock.php");
    console.log($form_id);
    ajaxValidarFormulario({
        formId: $form_id,
        action: "insertar_productos_stock",
        beforeCall: function() {
            BloquearBotonesModal($form_id);
        },
        successCall: function(data) {
            if (data.success) {
                $("#productosStock-form").trigger('reset');//reinicia todo
                opt_grid.bootgrid('reload');//actualiza l boot
                alert("Se agrego");
            }
        },
        errorCall: function(data) {
            DesBloquearBotonesModal($form_id, 'Crear', 'insertarProductoStock');
        }
    });
}
function viewDivsContenedoresCharts($id_div, $mostrar) {
    if ($mostrar) {//Mostrar los divs contenedores y ocultar el div de vacio
        if ($($id_div).hasClass("hidden")) {
            $($id_div).removeClass("hidden");
        }
        if (!$($id_div + "Empty").hasClass("hidden")) {
            $($id_div + "Empty").addClass("hidden");
        }

    }
    else {

        if (!$($id_div).hasClass("hidden")) {
            $($id_div).addClass("hidden");
        }
        if ($($id_div + "Empty").hasClass("hidden")) {
            $($id_div + "Empty").removeClass("hidden");
        }
    }

}
//mostrarReporteProductosColumnVentas